package com.dkd.manage.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dkd.common.annotation.Excel;
import com.dkd.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 学生管理对象 tb_student
 *
 * @author czq
 * @date 2024-11-09
 */
@ApiModel(description = "学生管理对象")
public class Student extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键ID", example = "1")
    private Long id;

    /** 学生姓名 */
    @Excel(name = "学生姓名")
    @ApiModelProperty(value = "学生姓名", example = "张三")
    private String studentName;

    /** 学号 */
    @Excel(name = "学号")
    @ApiModelProperty(value = "学号", example = "20210001")
    private String studentNumber;

    /** 性别 */
    @Excel(name = "性别")
    @ApiModelProperty(value = "性别", example = "男")
    private String gender;

    /** 年级 */
    @Excel(name = "年级")
    @ApiModelProperty(value = "年级", example = "大一")
    private String grade;

    /** 专业 */
    @Excel(name = "专业")
    @ApiModelProperty(value = "专业", example = "计算机科学与技术")
    private String major;

    /** 班级 */
    @Excel(name = "班级")
    @ApiModelProperty(value = "班级", example = "1班")
    private String className;

    /** 联系电话 */
    @Excel(name = "联系电话")
    @ApiModelProperty(value = "联系电话", example = "13800138000")
    private String phoneNumber;

    /** 出生年月 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "出生年月", example = "1999-01-01")
    private Date birthDate;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setStudentName(String studentName)
    {
        this.studentName = studentName;
    }

    public String getStudentName()
    {
        return studentName;
    }

    public void setStudentNumber(String studentNumber)
    {
        this.studentNumber = studentNumber;
    }

    public String getStudentNumber()
    {
        return studentNumber;
    }

    public void setGender(String gender)
    {
        this.gender = gender;
    }

    public String getGender()
    {
        return gender;
    }

    public void setGrade(String grade)
    {
        this.grade = grade;
    }

    public String getGrade()
    {
        return grade;
    }

    public void setMajor(String major)
    {
        this.major = major;
    }

    public String getMajor()
    {
        return major;
    }

    public void setClassName(String className)
    {
        this.className = className;
    }

    public String getClassName()
    {
        return className;
    }

    public void setPhoneNumber(String phoneNumber)
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber()
    {
        return phoneNumber;
    }

    public void setBirthDate(Date birthDate)
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate()
    {
        return birthDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("studentName", getStudentName())
            .append("studentNumber", getStudentNumber())
            .append("gender", getGender())
            .append("grade", getGrade())
            .append("major", getMajor())
            .append("className", getClassName())
            .append("phoneNumber", getPhoneNumber())
            .append("birthDate", getBirthDate())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}